Computer software may provide productivity or other benefits to a user of the computer software. However, potential users of computer software may be reluctant to use, or even try, computer software because of the overhead involved in the acquisition of the computer software. Users who could benefit from the productivity enhancements or other benefits of the software do not receive them, because they may be reluctant to overcome the hurdles involved in acquiring new software.
One such hurdle is the installation process itself. Many computer programs require the user to perform a complicated installation process before the software can be installed. If the computer software only runs in an environment that is not installed on the potential user's computer system, the potential user must locate the environment, install it, and then install the computer software. For example, if a user does not have the proper operating system that is a prerequisite of the latest software application, the user must locate the operating system, install it, and then install the new computer software. Installing the environment and/or the software can require the user to perform multiple steps, such as downloading the software to a location, remembering the location at which the software was downloaded, running the software, and then answering a number of questions about how and where to install the software. All of this can be a significant inconvenience to the user, and the user may simply abandon efforts to obtain the benefits originally-desired computer of the software when confronted with these issues. The problem becomes even greater when the user considers that the investment in time and energy to install the software and its environment are very real, but the potential benefits to be obtained are unproven and might not ever be realized by that user.
In some cases, the mere determination as to whether the potential user's computer system has the proper environment required by the computer software may itself represent overhead to the installation process that is sufficient to cause the user to avoid installing new software. For example, if the computer software requires a particular minimum processor speed to operate, the potential user may not know whether his or her computer system has a processor operating at that speed, or the equivalent processor. The identification as to whether the potential user's computer system has the minimum required environment may be more trouble than the user is willing to undergo to attempt to obtain the as yet unproven benefits promised by the software. The potential user may not even have any idea how to go about making the determination as to whether his or her computer system meets the minimum requirements of the software, and this problem can act as a further obstacle to installing the software.
Still another obstacle may be the problem of locating a place to purchase or license the software. A potential user may read about the software on the manufacturer's web site, but the manufacturer may not sell or license the software from that web site, requiring the user to search around for a retailer of that software.
Additionally, the user may be reluctant to pay the cost of the software. The cost of the software may include markups from each of a distributor and the retailer, which make the price of the software more expensive than the user can justify paying for software whose benefits to the user are not proven. If the software is not available in a retail store the user trusts, the user may be reluctant to purchase, license or otherwise obtain the software from an otherwise unknown and un-trusted Web site.
Because of the time and trouble and the involved in performing these activities, and the perceived risk of using an unknown source, a user may be extremely reluctant to install software whose benefits are unproven. As a result, many potential benefits of computer software are never achieved because the potential user is reluctant to go through the overhead of the installation process.
The overhead for the user is not the only reason that some software is not distributed. There is also overhead on the part of the software developer that can prevent some software from ever being made available in the first place. A new software manufacturer is required to set up an infrastructure for distribution (including packaging design, manufacturing, retailing and distribution agreements and other overhead) that may be too much effort for the developer of a niche application or one for which there is uncertain demand. The developer could attempt to market it from a web site, but the effort involved in directing sufficient customer traffic to the web site could be too expensive (e.g. due to advertising and public relations costs) to make the effort worthwhile, particularly for a new software developer. Furthermore, the software developer might be required to assist potential users with the installation process, including the determination as to whether the potential user's computer system contains the proper environment for the computer software. All of this overhead can prevent software that can provide benefits to a user from ever being developed in the first place.
What is needed is a system and method for distributing software that can identify whether a potential user's computer system contains the proper environment for the software, can automatically install the proper environment on the user's computer system if it does not have it, can automatically install the software for the user once the user's system contains the proper environment, and can direct potential customers to obtain the product in a manner that potential users trust, without requiring the developer to employ a distributor and retailer and their corresponding markups, while reducing the support the developer is required to provide to potential users of the computer software.